<?
namespace Admin\Event
{
    class SubsiteEdit extends \Api\AjaxEvent\Listener
    {
      /**
         * Aktualizacja wpisu podstrony
         * @param int       id - identyfikator podstrony
         * @param string alias - alias podstrony dla sprawdzenia poprawnosci
         * @param string title - tytul strony
         * @param strint content - tresc strony
         */
        public function __event__SubsiteEdit()
        {
            $result = array(
                "result"=>false,
                "message" => 'Wystąpił błąd. Odczekaj chwilę i spróbuj ponownie. W przypadku wielokrotnego powtarzania się błędu, skontaktuj się z administratorem serwisu. '
            );
            
            $allowed = array('id','alias','title','content','view','view_type','background','effect');
            if(\Api\Model\Login::IsValid() && \Api\Arrays::Exists($allowed,$this->m_param))
            {
                
                if(\Api\Arrays::IsEmpty($allowed, $this->m_param))
                {
                    $result['message']="Pozostawiono puste pole. Uzupełnij je!";
                }else
                {
                    $sub = new \Admin\Model\Subpages($this->m_config);
                    if($this->m_param['action'] == 'add')
                    {
                        if(\Api\Model\Login::GetPrivilages() != 1)
                        {
                            $result['message']='Nie posiadasz odpowiednich przywileji użytkownika aby wykonać tą operację!';                            
                        }else 
                        {
                            if( $sub->GetIDByAlias($this->m_param['alias']) != false)
                            {
                                $result['message']='Strona o podanym aliasie już istnieje!';
                            }else if( $sub->InsertSubpage($this->m_param))
                            {
                                $result['message']="Poprawnie dodano podstronę do bazy danych. Za chwilę nastąpi przekierowanie do listy edycji podstron.";
                                $result['result']=true;                
                                $result['redirect']=$sub->GetIDByAlias($this->m_param['alias']);                
                            }else
                            {
                                $result['message']='Błąd bazy danych!';
                            }
                        }
                    }
                    else if($this->m_param['action'] == 'edit')
                    {// Update subpage                        
                        if($sub->UpdateSubpage((int)$this->m_param['id'], $this->m_param))
                        {
                            $result['message']="Poprawnie zaktualizowano wpis podstrony.";
                            $result['result']=true;
                        }
                    }else
                    {
                        $result['message']='Wykryto niezdefiniowaną akcję.';
                    }
                }
                                
            }else
            {
                 $result['message']='Wykryto niezdefiniowaną akcję.';
            }
            
            return json_encode($result);
        }  
    }
}
?>